שמי דוד ואני מנסה להמיר את הקידוד באתר שלי לUTF-8, נעזרתי במאמר :
http://phpguide.co.il/UTF_8_%D7%A7%D7%99%D7%93%D7%95%D7%93_%D7%95%D7%A1%D7%99%D7%9E%D7%A0%D7%99_%D7%A9%D7%90%D7%9C%D7%94.htm
אך ללא הועיל. הוספתי גם את שלושת השורות:
mysql_query("set character_set_client='utf8'");
mysql_query("set character_set_results='utf8'");
mysql_query("set collation_connection='utf8'");
אך גם זה לא עזר - אם מקודם זה היה מכניס ג'יבריש לבסיס נתונים (אבל היה מצליח לקרוא כששלפתי את הנתונים לדף PHP), כעת זה מכניס לי רק סימני שאלה ובעת השליפה גם מציג לי סימני שאלה (??? ????? ???? - לדוגמא).
אגב, האם שלושת השורות האלו מחליפות את השורה הבאה:
mysql_query("SET NAMES 'utf8'",$db);
או שצריך להוסיף אותן בנוסף? כי השורה הנ"ל מחזירה לי שגיאה ואין לי מושג מה עושים איתה.
עוד שאלה - האם את השורה הבאה :
<?php header('Content-Type: text/html; charset=utf-8'); ?>
אני צריך לשים בכל קוד שאני פותח או שמספיק לשים אותו בקובץ header.php שאני עושה לו אינקלוד בכל דף?
שרפתי על זה המון זמן ולא מצליח לפתור את הבעיה.
תודה רבה לעוזרים!
3 תשובות
אני מציע לך לקרוא את קידוד UTF-8: הסוף לג'יבריש, לסימני שאלה ולסמלים מוזרים במקום עברית ושפות נוספות שוב ואז לחזור שוב במקרה של שאלות.[תעבור סעיף סעיף,לדוגמא האם השדות במסד מוגדרות כ utf 8 ? הקובץ עצמו ?]
יש לציין שסעיף 2 וסעיף 3 זה בדיוק אותו הדבר,ומשום מה גם אתה וגם המדריך משתמשים בהרחבה הישנה של mysql.
בנוסף,נתונים שהוכנסו עם קידוד שגוי כנראה שכבר לא יעבדו ולכן תצטרך להכניס מחדש.
עברתי על המאמר יותר מ3 פעמים ועשיתי את כל השלבים אך ללא הועיל. HELP :(
כנראה שאחד השלבים לא עשה שום דבר. יכול להיות שהוא בכלל לא הופעל כי הקוד לא הגיע לנתיב הביצוע הזה, יכול להיות שלא היה חיבור פעיל או כל בעיה אחרת.
תנסה ליצור קובץ PHP ריק, נפרד, חדש ואך ורק לשים בו את הדברים האלה ושורה אחת להכנסה למסד.
בנוסף, תוכל בבקשה להדפיס את הפלט של השאילתות הבאות (אחרי שתבצע חיבור למסד):
SHOW VARIABLES LIKE 'collation%';
וגם לצרף את הקוד שיצא לך